Typography is the study and process of typefaces, i.e., how to select, size, arrange and use typefaces in general. A typeface is a specific, named design of a set of printed characters, such as Helvetica or Times Roman, that has a specified obliqueness (degree of slant) and stroke weight (thickness of line). Typeface may also refer to a size-independent graphical description of a set of characters. A typeface is generally not the same as a font, which is a specific size of a particular typeface, such as 12-point Helvetica or 10-point Times Roman.
To contrast the two, a font refers to all the characters available in a particular size, style, and weight for a particular design, whereas a typeface refers to the design itself. Hereinafter, the terms "typeface" and "font" may be used interchangeably.
Traditional typography involved the use of metal type with raised letterforms, which were inked and then pressed onto paper. When metal type was used in the first printing presses, the left and right sidebearings and the width of the characters were defined in physical terms based on the square pieces of metal that were formed in molds. (The left sidebearing of a character is defined as the horizontal distance from the character's origin to the left-most point in that character. The origin of the character is an imaginary point at which the character begins. This point marks the (0,0) point of a normal Cartesian coordinate system. The right sidebearing of a character is defined as the horizontal distance between the character's right-most point and the width of the character. This number is negative if the right-most point is beyond the width. The width of the character is the horizontal distance between the origin of the current character and the origin of the next character.) Ink was placed on the metal block and a portion of the metal block that was raised higher than the rest of the block left an imprint on the paper. The raised portion of the block could be a letter form or a character shape.
The left side of the metal block defined the origin line (a vertical line passing through the origin point) of the character and the right side of the metal block defined the width line (a vertical line that has a horizontal value equal to the width of the character). The left-most and the right-most raised portions of the block defined the left and right sidebearings, respectively.
In traditional printing, the metal blocks would be placed in juxtaposition to one another. If one desired to add more space between characters than provided by the metal blocks, then one had to add wood or metal spacers as needed. This allowed the metal blocks to be held tightly in place to control movement during the printing process. If the printer desired the width of the character to be smaller than its original design, he or she would file a portion of the metal off a side of the block.
In order to place two characters closer together than was physically possible with metal blocks, the printer created a special metal block containing two characters together on one piece of metal. Such characters are commonly referred to as kerning pairs, e.g., AV, WA, and YO, wherein the width of a character is different than it is normally because it is next to a certain character. To kern is to selectively alter the distance between pairs of letters, for readability and to make the type spacing more balanced and proportional.
Glyphs are graphical images associated with a particular character definition. Glyphs, which contain the image of more than one character, are usually referred to as ligatures. A ligature may contain slightly modified images of the characters for aesthetic reasons.
Even in modem typography, the relative placement of characters with respect to each other, commonly known as the spacing of a typeface or font, is a time consuming effort when done by hand. The type designer must decide what left and right sidebearings to place on each character in the typeface. In order to define the left sidebearing of the character, one must draw or place a graphical description of that character the desired distance from the origin. The width of the character is then determined by placing a width mark as shown in FIG. 1. The goal of this decision making process is to space each character such that the "color" of a particular page of characters is relatively even. (In this context, color does not refer to different wavelengths of light.) It is best described by example: when a larger amount of ink (usually black) is placed on one part of the page than is placed on another part of the same page, then the part of the page with the most ink appears darker. This relative comparison of the dark and light sections of the page is sometimes referred to as the "color" of the page.
To get a consistent "color" on the page, each character must have a consistent apparent width (the amount of white space that the eye perceives when viewing two or more characters next to each other) regardless of what character(s) lies next to it.
Often, it may be impossible to accomplish a consistent color for all possible character pairs solely by setting the width of the characters. In such a situation, special kerning pairs may be necessary, wherein the width of a particular character is modified only when the character appears to the left of another specific character. The type designer must then specify how much of the character's width must be modified when next to the specified second character. The value that specifies this change in width is referred to as the kerning (kern) value.
Fortunately, the field of typography is no longer limited to the physical constraints of metal type. With the advent of electronic typography, it has become much simpler to create negative sidebearings, kerning pairs, and ligatures in order to achieve the desired results.
To achieve the desired consistent "color," it might take the type designer several man-weeks or months to properly space and kern a typeface by traditional methods. Automation of this process greatly reduces the amount of time necessary to properly space and kern a typeface and therefore saves substantial time and money. However, despite the advent of electronic typography, achieving a well designed and aesthetically pleasing typeface is still a time consuming task.
One commercially available program, Fontographer.RTM..COPYRGT. available from Altsys Corporation, Dallas, Tex., the assignee of the present invention, automates the process of kerning fonts. This program is hereby incorporated by reference herein. This automatic kerning pair generation process creates a list of kerning pairs based on various user-defined parameters to provide a kerning pair for each and every possible character pair within a set of characters. The kerning is accomplished by the process after a desired spacing is determined by the user. However, a problem with this process is that it requires a considerable amount of memory to store each and every kerning pair.
Essentially, the kerning pair generation process begins after the type designer has designed the font for the characters. The type designer will use the process to design a spacing for the font that is aesthetically desirable. The process then computes kerning values for each of the kerning pairs, which adjust the base spacing values so that each pair is consistent with the overall desired "color" selected for the font.
Thereafter, when the printer wishes to utilize the font and the associated kerning pairs to print onto a medium (e.g., a display screen, paper, etc.), the printing process must then retrieve from memory each kerning pair of characters as required. Such a process is time consuming, since the memory store of kerning pairs must be searched for the appropriate kerning pair and value as each character is sent to the output device (display screen, printer, printing press).
Thus, though kerning pairs and their associated kerning values stored within memory may be utilized by a printing process, their use is inefficient because of the storage requirements for the kerning pairs and kerning values and because of the time consuming search process described above.
As a result, there is a need in the art for an automatic spacing process that maximizes the number of character combinations having the desired amount of white space ("color") between character pairs while requiring the fewest number of kerning pairs in order to achieve this desired amount of white space for all the specified pairs.